#pragma once
#include <iostream>

namespace lib3dw
{
	typedef enum { RenderVBO, RenderImmediate, RenderDisplayList } RenderMode;

	class ConfigSingleton
	{
		public:
			static ConfigSingleton* Instance();
			const RenderMode GetRenderMode() const;
			const void SetRenderMode(RenderMode);
			const bool GetShowFPS() const;
			const void SetShowFPS(bool fps);
			const bool GetFrustumCulling() const;
			const void SetFrustumCulling(bool newFrustumCulling);
			const bool GetWireframe() const;
			const void SetWireframe(bool newWireframe);
			
		protected:
			ConfigSingleton();

		private:
			static ConfigSingleton *instance;
			RenderMode renderMode;
			bool showFPS;
			bool frustumCulling;
			bool wireframe;
	};
}